import { baseUrl } from './config.js';

// 聊天机器人配置
const chatConfig = {
    welcome: "Parece que las siguientes preguntas podrían interesarle",
    index: "¡Hola! Soy tu asistente virtual de ELETILE y estoy aquí para ayudarte a encontrar lo que necesitas rápidamente. ¿Cómo puedo ayudarte hoy? Parece que estás interesado en los siguientes temas",
    opportunity: "Parece que estás interesado en nuestras empresa. ¿Te gustaría saber más sobre los beneficios que ofrecemos a nuestro empleados?",
    process: "Parece que las siguientes preguntas podrían interesarle",
    product: "¿Estás buscando información sobre nuestros productos de PVC? ",
    Hola:'¡Hola! ¿Cómo estás? 😊 ¿En qué te puedo ayudar hoy?',
    notFound: "No he podido entender tu consulta. Para mejor atención, contacta a nuestro servicio al cliente: duoyuan.hu@eletile.com"
};

// 初始化聊天机器人
export function initChatBot() {
    const chatIcon = document.getElementById('chatIcon');
    const chatWindow = document.getElementById('chatWindow');
    const closeChat = document.getElementById('closeChat');
    const chatMessages = document.getElementById('chatMessages');
    const userInput = document.getElementById('userInput');
    const sendMessage = document.getElementById('sendMessage');

    // 初始显示聊天窗口和欢迎消息
    if (chatMessages.children.length === 0) {
        const currentPage = getCurrentPage();
        const welcomeMessage = chatConfig[currentPage] || chatConfig.welcome;
        showBotMessage(welcomeMessage);
        loadInitialOptions();
    }

    // 关闭聊天窗口
    closeChat.addEventListener('click', () => {
        chatWindow.style.display = 'none';
        chatIcon.style.display = 'flex';
    });

    // 打开聊天窗口
    chatIcon.addEventListener('click', () => {
        chatWindow.style.display = 'flex';
        chatIcon.style.display = 'none';
    });

    // 发送消息事件处理
    sendMessage.addEventListener('click', sendUserMessage);
    userInput.addEventListener('keypress', (e) => {
        if (e.key === 'Enter') {
            sendUserMessage();
        }
    });

    // 加载初始选项
    function loadInitialOptions() {
        $.ajax({
            url: `${baseUrl}/website/getQuestionLibraryByPosition`,
            type: 'GET',
            data: {
                position: getCurrentPage()
            },
            success: function(response) {
                showOptions(response.data);
            },
            error: function(error) {
                console.error('数据加载失败:', error);
            }
        });
    }

    // 发送用户消息
    function sendUserMessage() {
        const message = userInput.value.trim();
        if (message) {
            showUserMessage(message);
            userInput.value = '';
            handleUserInput(message.toLowerCase());
        }
    }

    // 处理用户输入
    function handleUserInput(message) {
                // 检查是否是 "Hola"
                if (message == 'hola' || message == 'Hola') {
                    showBotMessage(chatConfig.Hola);
                    // 重新加载初始选项
                    $.ajax({
                        url: `${baseUrl}/website/getQuestionLibraryByPosition`,
                        type: 'GET',
                        data: {
                            position: getCurrentPage()
                        },
                        success: function(response) {
                            showOptions(response.data);
                        },
                        error: function(error) {
                            console.error('数据加载失败:', error);
                        }
                    });
                } else {
                    $.ajax({
                        url: `${baseUrl}/website/robot`,
                        type: 'GET',
                        data: {
                            text: message
                        },
                        success: function(response) {
                            if(response.data.length) {
                                showOptions(response.data);
                            } else {
                                showBotMessage(chatConfig.notFound);
                            }
                        },
                        error: function(error) {
                            console.error('数据加载失败:', error);
                            showBotMessage(chatConfig.notFound);
                        }
                    });
                }

    }

    // 显示机器人消息
    function showBotMessage(message) {
        const messageDiv = document.createElement('div');
        messageDiv.className = 'message bot-message';
        messageDiv.innerHTML = `
            <img src="static/images/bot-avatar.png" class="message-avatar" alt="Bot">
            <div class="message-content">${message}</div>
        `;
        chatMessages.appendChild(messageDiv);
        chatMessages.scrollTop = chatMessages.scrollHeight;
    }

    // 显示用户消息
    function showUserMessage(message) {
        const messageDiv = document.createElement('div');
        messageDiv.className = 'message user-message';
        messageDiv.innerHTML = `
            <img src="static/images/user-avatar.png" class="message-avatar" alt="User">
            <div class="message-content">${message}</div>
        `;
        chatMessages.appendChild(messageDiv);
        chatMessages.scrollTop = chatMessages.scrollHeight;
    }

    // 显示选项
    function showOptions(options) {
        const optionsDiv = document.createElement('div');
        optionsDiv.className = 'options-list';

        options.forEach(option => {
            if(option.type === 'text') {
                showBotMessage(option.question);
            } else {
                const button = document.createElement('button');
                button.className = 'option-button';
                button.textContent = option.question;
                button.addEventListener('click', () => handleOptionClick(option));
                optionsDiv.appendChild(button);
            }
        });

        chatMessages.appendChild(optionsDiv);
        chatMessages.scrollTop = chatMessages.scrollHeight;
    }

    // 处理选项点击
    function handleOptionClick(option) {
        showUserMessage(option.question);
        if(option.point) {
            handleNavigation(option.point);
        } else {
            loadSubOptions(option.tid);
        }
    }

    // 处理导航
    function handleNavigation(point) {
        const [page, section] = point.split('_');
        if(page === getCurrentPage()) {
            scrollToSection(section);
        } else {
            window.location.href = `${page}.html?${section}`;
        }
    }

    // 加载子选项
    function loadSubOptions(pid) {
        $.ajax({
            url: `${baseUrl}/website/getQuestionLibraryByPid`,
            type: 'GET',
            data: { pid },
            success: function(response) {
                showOptions(response.data);
            },
            error: function(error) {
                console.error('数据加载失败:', error);
            }
        });
    }

    // 滚动到指定区域
    function scrollToSection(section) {
        $('html, body').animate({
            scrollTop: $(section).offset().top
        }, 1000);
    }

    // 获取当前页面名称
    function getCurrentPage() {
        const path = window.location.pathname;
        const page = path.split('/').pop().split('.')[0];
        return page || 'index';
    }
}
